package com.cong.security.service.impl;

import com.cong.security.entity.Account;
import com.cong.security.mapper.AccountMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.social.connect.Connection;
import org.springframework.social.connect.ConnectionSignUp;
import org.springframework.stereotype.Component;

/**
 * @Description TODO
 * @Author single-聪
 * @Date 2020/1/19 19:53
 * @Version 1.0.1
 **/
@Slf4j
@Component
public class MyConnectionSignUp implements ConnectionSignUp {

    @Autowired
    private AccountMapper accountMapper;

    @Override
    public String execute(Connection<?> connection) {
        // TODO 根据社交账户信息默认创建用户
        log.info("第三方数据来源为:[{}]", connection.getKey().getProviderId());
        log.info("第三方数据openId为:[{}]", connection.getKey().getProviderUserId());
        log.info("第三方数据昵称为:[{}]", connection.getDisplayName());// 昵称,可以当做本系统用户昵称,但是不能作为登录用户名
        log.info("第三方数据头像路径为:[{}]", connection.getImageUrl());// 需要将该图片传至自身服务器
        // 1、构建系统用户信息(使用三方账户数据)
        Account account = new Account("18812345678");
        // 2、加入本系统表中
        accountMapper.insert(account);
        // 3、返回创建的用户唯一标识(UUID)
        return account.getId();
    }
}
